// 泛型（Generics）是指在定义函数、接口或类的时候，不预先指定具体的类型，而在使用的时候再指定类型的一种特性。
//`Array<any>` 允许数组的每一项都为任意类型。
// 但是我们预期的是，数组中每一项都应该是输入的 `value` 的类型。
// 函数名后添加了 `<T>`，其中 `T` 用来指代任意输入的类型，
// 在后面的输入 `value: T` 和输出 `Array<T>` 中即可使用了
function createArray<T>(len: number, value: T): T[] {
  const arr: T[] = [];
  for (var i = 0; i < len; i++) {
    arr[i] = value;
  }
  return arr;
}

createArray(3, "a"); // ['a', 'a', 'a']
createArray(3, 5); // [5,5,5]
